code: public synchronized void beginTransaction() throws TransactionInProgressException, TransactionAbortedException
      {
          if (isInTransaction())
          {
              throw new TransactionInProgressException("PersistenceBroker is already in transaction");
          }
          fireBrokerEvent(BEFORE_BEGIN_EVENT);
          setInTransaction(true);
          this.connectionManager.localBegin();
          fireBrokerEvent(AFTER_BEGIN_EVENT);
      }
docs: begin a transaction against the underlying RDBMS.
  Calling <code>beginTransaction</code> multiple times,
  without an intervening call to <code>commitTransaction</code> or <code>abortTransaction</code>,
  causes the exception <code>TransactionInProgressException</code> to be thrown
  on the second and subsequent calls.