code: public void storeOverwriteExisting(Entry entry) throws MissingParentException {
          try {
              deleteSubtreeIncludingRoot(entry.getDn());
          } catch (NoSuchNodeException e) {
              LOGGER.debug("nothing to overwrite");
          } finally {
              try {
                  store(entry);
              } catch (EntryAlreadyExistsException e) {
                  LOGGER.warn("should never reach here - entry should have been deleted");
              }
          }
      }
docs: Inserts an entry into the DIT. If the entry exists, it is overwritten. Overwriting leaves is straight forward.
  Overwriting inner nodes will first delete the node's entire subtree, then overwrite the node. Throws
  {@link MissingParentException} if an ancestor of the entry is missing.