code: @Override
    public void close() throws IOException{
      if (!this.closed) {
        this.session.close();
        // If the clients are shutdown, there shouldn't be any more activity on the
        // batch pool (assuming we created it ourselves). If exceptions were raised
        // shutting down the clients, it's not entirely safe to shutdown the pool
        // (via a finally block).
        shutdownBatchPool();
        if (this.bufferedMutatorExecutorService != null) {
          this.bufferedMutatorExecutorService.shutdown();
          this.bufferedMutatorExecutorService = null;
        }
        this.closed = true;
      }
    }
docs: {@inheritDoc}