code: public void addChildNodesByPage(NodeData parent, List<NodeData> childs, int fromOrderNum)
     {
        boolean inTransaction = cache.isTransactionActive();
        try
        {
           if (!inTransaction)
           {
              cache.beginTransaction();
           }
  
           cache.setLocal(true);
  
           CacheNodesByPageId cacheId = new CacheNodesByPageId(getOwnerId(), parent.getIdentifier());
           Map<Integer, Set<String>> pages = (Map<Integer, Set<String>>)cache.get(cacheId);
           if (pages == null)
           {
              pages = new HashMap<Integer, Set<String>>();
           }
  
           Set<String> set = new HashSet<String>();
           for (NodeData child : childs)
           {
              putNode(child, ModifyChildOption.NOT_MODIFY);
              set.add(child.getIdentifier());
           }
  
           pages.put(fromOrderNum, set);
           cache.put(cacheId, pages);
        }
        finally
        {
           cache.setLocal(false);
           if (!inTransaction)
           {
              dedicatedTxCommit();
           }
        }
     }
docs: {@inheritDoc}