code: @NotNull
      public ResultSetFuture executeAsync(@NotNull String keyspace, @NotNull Statement statement) {
          Timer time = getMetricsFactory().getTimer(MetricsType.CASSANDRA_EXECUTE_ASYNC.name());
  
          getMetricsFactory().getCounter(MetricsType.CASSANDRA_PROCESSING_QUERIES.name()).inc();
  
          ResultSetFuture resultSetFuture = getOrCreateSession(keyspace).executeAsync(statement);
  
          String query = (statement instanceof BoundStatement) ? ((BoundStatement) statement).preparedStatement().getQueryString() : statement.toString();
  
          Futures.addCallback(resultSetFuture, new StatementExecutionCallback(keyspace, query));
          monitorFuture(time, resultSetFuture);
  
          return resultSetFuture;
      }
docs: Execute statement asynchronously
  
  @param statement Statement that must be executed
  
  @return ResultSetFuture