docs: @Override
      public void commit() throws InvalidKBException {
          if (isClosed()) {
              return;
          }
          try {
              checkMutationAllowed();
              removeInferredConcepts();
              validateGraph();
              // lock on the keyspace cache shared between concurrent tx's to the same keyspace
              // force serialization & atomic updates, keeping Janus and our KeyspaceCache in sync
              synchronized (keyspaceCache) {
                  commitTransactionInternal();
                  transactionCache.flushToKeyspaceCache();
              }
          } finally {
              String closeMessage = ErrorMessage.TX_CLOSED_ON_ACTION.getMessage("committed", keyspace());
              closeTransaction(closeMessage);
          }
      }