code: public ProductPartitionNode addChild(ProductDimension childDimension) {
      ProductPartitionNode newChild = new ProductPartitionNode(this, childDimension, null,
          children.comparator());
      Preconditions.checkArgument(isSubdivision(),
          "Parent node is not a SUBDIVISION. Call asSubdivision before adding children to a node.");
      if (children.containsKey(childDimension)) {
        throw new IllegalArgumentException(
            String.format("A child with dimension %s already exists", toString(childDimension)));
      }
      children.put(childDimension, newChild);
      return newChild;
    }
docs: Adds a NEW child for {@code childDimension} under this node.
  
  @param childDimension required - the {@link ProductDimension} for the new child
  @return the newly created child node