code: @Override
      public void close() {
          // get current session
          Neo4JSession session = this.session.get();
          if (session != null) {
              // close session
              session.close();
              // remove session
              this.session.remove();
          }
          // synchronize access to set
          synchronized (closeListeners) {
              // notify consumers
              closeListeners.forEach(consumer -> consumer.accept(this));
          }
      }
docs: {@inheritDoc}