A transaction is always either automatic or explicit. If it is automatic, (autocommit), every operation is performed as part of a new transaction that is automatically committed.
Beginning, committing, and rolling back a transaction
begin();Begin a transaction. No arguments are required. If a transaction is already active, an exception is thrown.
commit(Function(Object error) callback);Commit a transaction.
        This method takes as its sole argument a
        callback function that returns an
        error object.
      
rollback(Function(Object error) callback);
        Roll back a transaction. Errors are reported in the
        callback function.
      
Transaction information methods
Boolean isActive();Determine whether or not a given transaction is currently active. Returns true if a transaction is active, and false otherwise.
        isActive() requires no arguments.
      
setRollbackOnly();
        Mark the transaction as rollback-only. Once this is done,
        commit() rolls back the transaction and
        throws an exception; rollback() rolls the
        transaction back, but does not throw an exception. To mark a
        transaction as rollback-only, call the
        setRollbackOnly() method, as shown here.
      
        This method is one-way; a transaction marked as rollback-only
        cannot be unmarked. Invoking
        setRollbackOnly() while in autocommit mode
        throws an exception. This method requires no arguments.
      
boolean getRollbackOnly();
        Determine whether a transaction has been marked as
        rollback-only. Returns true if the transaction has been so
        marked. setRollbackOnly() takes no arguments.