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