docs: def add(self, name, value=None, quotes='"', pad_first=" ",
              pad_before_eq="", pad_after_eq=""):
          """Add an attribute with the given *name* and *value*.
  
          *name* and *value* can be anything parsable by
          :func:`.utils.parse_anything`; *value* can be omitted if the attribute
          is valueless. If *quotes* is not ``None``, it should be a string
          (either ``"`` or ``'``) that *value* will be wrapped in (this is
          recommended). ``None`` is only legal if *value* contains no spacing.
  
          *pad_first*, *pad_before_eq*, and *pad_after_eq* are whitespace used as
          padding before the name, before the equal sign (or after the name if no
          value), and after the equal sign (ignored if no value), respectively.
          """
          if value is not None:
              value = parse_anything(value)
          quotes = Attribute.coerce_quotes(quotes)
          attr = Attribute(parse_anything(name), value, quotes)
          attr.pad_first = pad_first
          attr.pad_before_eq = pad_before_eq
          attr.pad_after_eq = pad_after_eq
          self.attributes.append(attr)
          return attr