docs: @Override
      public void perform() throws PortalException {
          // push the change into the PLF
          if (nodeId.startsWith(Constants.FRAGMENT_ID_USER_PREFIX)) {
              // we are dealing with an incorporated node, so get a plf ghost
              // node, set its attribute, then add a directive indicating the
              // attribute that should be pushed into the ilf during merge
              Element plfNode =
                      HandlerUtils.getPLFNode(
                              ilfNode, person, true, // create node if not found
                              false); // don't create children
              plfNode.setAttribute(name, value);
              /*
               * add directive to hold override value. This is not necessary for
               * folder names since they are overridden at render time with their
               * locale specific version and persisted via a different mechanism.
               */
              EditManager.addEditDirective(plfNode, name, person);
          } else {
              // node owned by user so change attribute in child directly
              Document plf = RDBMDistributedLayoutStore.getPLF(person);
              Element plfNode = plf.getElementById(nodeId);
              if (plfNode != null) // should always be non-null
              {
                  plfNode.setAttribute(name, value);
              }
          }
          /*
           * push the change into the ILF if not the name attribute. For names
           * the rendering will inject the localized name via a special processor.
           * So it doesn't matter what is in the ILF's folder name attribute.
           */
          if (!name.equals(Constants.ATT_NAME))
          // should always be non-null
          {
              ilfNode.setAttribute(name, value);
          }
      }