code: public Versioned<V> addChild(String name, V newValue, long newVersion) {
      DefaultDocumentTreeNode<V> child = (DefaultDocumentTreeNode<V>) children.get(name);
      if (child != null) {
        return child.value();
      }
      children.put(name, new DefaultDocumentTreeNode<>(
          new DocumentPath(name, path()), newValue, newVersion, ordering, this));
      return null;
    }
docs: Adds a new child only if one does not exist with the name.
  
  @param name       relative path name of the child node
  @param newValue   new value to set
  @param newVersion new version to set
  @return previous value; can be {@code null} if no child currently exists with that relative path name.
  a non null return value indicates child already exists and no modification occurred.