code: @Override
    public void start()
    {
      LOGGER.debug("Start Loading");
      // validate parameters
      validateParameters();
  
      if (_op == null)
      {
        this.abort(new ConnectionError("Loader started with no operation"));
        return;
      }
  
      initDateFormats();
  
      initQueues();
  
      if (_is_first_start_call)
      {
        // is this the first start call?
  
        try
        {
          if (_startTransaction)
          {
            LOGGER.debug("Begin Transaction");
            _processConn.createStatement().execute("begin transaction");
          }
          else
          {
            LOGGER.debug("No Transaction started");
          }
        }
        catch (SQLException ex)
        {
          abort(new Loader.ConnectionError("Failed to start Transaction",
                                           Utils.getCause(ex)));
        }
  
        if (_truncate)
        {
          truncateTargetTable();
        }
  
        try
        {
          if (_before != null)
          {
            LOGGER.debug("Running Execute Before SQL");
            _processConn.createStatement().execute(_before);
          }
        }
        catch (SQLException ex)
        {
          abort(new Loader.ConnectionError(
              String.format("Execute Before SQL failed to run: %s", _before),
              Utils.getCause(ex)));
        }
      }
    }
docs: Starts the loader