Begin starts a transaction which is either read-only or read-write depending on the specified flag. Multiple read-only transactions can be started simultaneously while only a single read-write transaction can be started at a time. The call will block when starting a read-write transaction when one is already open.
NOTE: The transaction must be closed by calling Rollback or Commit on it when it is no longer needed. Failure to do so will result in unclaimed memory.
This function is part of the database.DB interface implementation.