code: public void localBegin()
      {
          if (this.isInLocalTransaction)
          {
              throw new TransactionInProgressException("Connection is already in transaction");
          }
          Connection connection = null;
          try
          {
              connection = this.getConnection();
          }
          catch (LookupException e)
          {
              /**
               * must throw to notify user that we couldn't start a connection
               */
              throw new PersistenceBrokerException("Can't lookup a connection", e);
          }
          if (log.isDebugEnabled()) log.debug("localBegin was called for con " + connection);
          // change autoCommit state only if we are not in a managed environment
          // and it is enabled by user
          if(!broker.isManaged())
          {
              if (jcd.getUseAutoCommit() == JdbcConnectionDescriptor.AUTO_COMMIT_SET_TRUE_AND_TEMPORARY_FALSE)
              {
                  if (log.isDebugEnabled()) log.debug("Try to change autoCommit state to 'false'");
                  platform.changeAutoCommitState(jcd, connection, false);
              }
          }
          else
          {
              if(log.isDebugEnabled()) log.debug(
                          "Found managed environment setting in PB, will skip Platform.changeAutoCommitState(...) call");
          }
          this.isInLocalTransaction = true;
      }
docs: Start transaction on the underlying connection.