docs: private boolean executeInternal(String sql, int fetchSize, int autoGeneratedKeys)
        throws SQLException {
  
      lock.lock();
      try {
  
        executeQueryPrologue(false);
        results = new Results(this,
            fetchSize,
            false,
            1,
            false,
            resultSetScrollType,
            resultSetConcurrency,
            autoGeneratedKeys,
            protocol.getAutoIncrementIncrement());
  
        protocol.executeQuery(protocol.isMasterConnection(), results,
            getTimeoutSql(Utils.nativeSql(sql, protocol.noBackslashEscapes())));
        results.commandEnd();
        return results.getResultSet() != null;
  
      } catch (SQLException exception) {
        throw executeExceptionEpilogue(exception);
      } finally {
        executeEpilogue();
        lock.unlock();
      }
  
    }