code: public void beginTransactionWithListener(com.couchbase.lite.internal.database.sqlite.SQLiteTransactionListener transactionListener) {
          beginTransaction(transactionListener, true);
      }
docs: Begins a transaction in EXCLUSIVE mode.
  <p>
  Transactions can be nested.
  When the outer transaction is ended all of
  the work done in that transaction and all of the nested transactions will be committed or
  rolled back. The changes will be rolled back if any transaction is ended without being
  marked as clean (by calling setTransactionSuccessful). Otherwise they will be committed.
  </p>
  <p>Here is the standard idiom for transactions:
  
  <pre>
  db.beginTransactionWithListener(listener);
  try {
  ...
  db.setTransactionSuccessful();
  } finally {
  db.endTransaction();
  }
  </pre>
  
  @param transactionListener listener that should be notified when the transaction begins,
  commits, or is rolled back, either explicitly or by a call to
  {@link #yieldIfContendedSafely}.