code: @Override
      public synchronized void beginTransaction() throws DatabaseEngineRuntimeException {
          /*
           * It makes sense trying to reconnect since it's the beginning of a transaction.
           */
          try {
              getConnection();
              if (!conn.getAutoCommit()) { //I.E. Manual control
                  logger.debug("There's already one transaction active");
                  return;
              }
  
              conn.setAutoCommit(false);
          } catch (final Exception ex) {
              throw new DatabaseEngineRuntimeException("Error occurred while starting transaction", ex);
          }
      }
docs: Starts a transaction. Doing this will set auto commit to false ({@link Connection#getAutoCommit()}).
  
  @throws DatabaseEngineRuntimeException If something goes wrong while beginning transaction.