public void addChild(final T_TREE_NODE parentNode, final T_TREE_NODE node) {
        checkArg(hasNode(parentNode), "parentNode is not in the tree");
        checkArg(!hasNode(node), "node is already in the tree");

        childrenMap.computeIfAbsent(parentNode, k -> new ArrayList<>()).add(node);
        parents.put(node, parentNode);
    }
@param parentNode [hasNode(parentNode)]
@param node       [!hasNode(node)]
stroom-core-client-widget/src/main/java/stroom/widget/htree/client/treelayout/util/DefaultTreeForTreeLayout.java