code: public void setAttribute(String name, String value, String facet)
              throws JspException
      {
          // validate the name attribute, in the case of an error simply return.
          if (name == null || name.length() <= 0) {
              String s = Bundle.getString("Tags_AttributeNameNotSet");
              registerTagError(s, null);
              return;
          }
          // it's not legal to set the id or name attributes this way
          if (name != null && (name.equals("netui:treeName"))) {
              String s = Bundle.getString("Tags_AttributeMayNotBeSet", new Object[]{name});
              registerTagError(s, null);
              return;
          }
  
          _divState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, name, value);
      }
docs: Set an attribute value on the implementing class.  The <code>name</code> represents
  the name of the attribute.  The <code>value</code> represents the value and may contains
  an expression.  The <code>facet</code> is optional and may be used by complex types to
  target the attribute to a sub part of the generated markup. This method may result in errors
  being generated.
  @param name  The name of the attribute.  This value may not be null or the empty string.
  @param value The value of the attribute.  This may contain an expression.
  @param facet The name of a facet to which the attribute will be applied.  This is optional.
  @throws javax.servlet.jsp.JspException A JspException may be thrown if there is an error setting the attribute.