setAttribute(attributeName, attributeValue) {
    if (this.doc !== null) {
      transact(this.doc, transaction => {
        typeMapSet(transaction, this, attributeName, attributeValue);
      });
    } else {
      /** @type {Map<string, any>} */
      this._prelimAttrs.set(attributeName, attributeValue);
    }
  }
Sets or updates an attribute.

@param {String} attributeName The attribute name that is to be set.
@param {String} attributeValue The attribute value that is to be set.

@public