code: public Whitelist addAttributes(String tag, String... attributes) {
          Validate.notEmpty(tag);
          Validate.notNull(attributes);
          Validate.isTrue(attributes.length > 0, "No attribute names supplied.");
  
          TagName tagName = TagName.valueOf(tag);
          tagNames.add(tagName);
          Set<AttributeKey> attributeSet = new HashSet<>();
          for (String key : attributes) {
              Validate.notEmpty(key);
              attributeSet.add(AttributeKey.valueOf(key));
          }
          if (this.attributes.containsKey(tagName)) {
              Set<AttributeKey> currentSet = this.attributes.get(tagName);
              currentSet.addAll(attributeSet);
          } else {
              this.attributes.put(tagName, attributeSet);
          }
          return this;
      }
docs: Add a list of allowed attributes to a tag. (If an attribute is not allowed on an element, it will be removed.)
  <p>
  E.g.: <code>addAttributes("a", "href", "class")</code> allows <code>href</code> and <code>class</code> attributes
  on <code>a</code> tags.
  </p>
  <p>
  To make an attribute valid for <b>all tags</b>, use the pseudo tag <code>:all</code>, e.g.
  <code>addAttributes(":all", "class")</code>.
  </p>
  
  @param tag  The tag the attributes are for. The tag will be added to the allowed tag list if necessary.
  @param attributes List of valid attributes for the tag
  @return this (for chaining)