code: public ResultSet wrapResultSet(ResultSet resultSet, Query query, Timer.Context lifeTimerContext) {
          return (ResultSet) newProxy(new ResultSetProxyHandler(resultSet, getResultSetType(resultSet), this, query, lifeTimerContext));
      }
docs: Wrap a result set to monitor it.
  
  @param resultSet set to wrap
  @param query SQL query of result set
  @param lifeTimerContext Started timer
  @return Wrapped prepared statement