code: public void pushNode(Node node) {
          initNode(node);
  
          // Reset in stream
          inStream = null;
  
          synchronized (nodeStack) {
  
              // Clear popped stack
              poppedNodes.clear();
  
              // Check if fragment is in suppression mode
              if (suppress) {
                  suppressedNodeStack.push(node);
                  return;
              }
  
              if (nodeStack.isEmpty()) {
                  if (log.isLoggable(Level.FINEST)) {
                      log.finest("Pushing top level node: " + node + " for txn: " + trace);
                  }
                  trace.getNodes().add(node);
              } else {
                  Node parent = nodeStack.peek();
  
                  if (parent instanceof ContainerNode) {
                      if (log.isLoggable(Level.FINEST)) {
                          log.finest("Add node: " + node + " to parent: " + parent + " in txn: " + trace);
                      }
                      ((ContainerNode) parent).getNodes().add(node);
                  } else {
                      log.severe("Attempt to add node '" + node + "' under non-container node '" + parent + "'");
                  }
              }
              nodeStack.push(node);
          }
      }
docs: This method pushes a new node into the trace
  fragment hierarchy.
  
  @param node The new node