setProp (propertyName, value) {
    if (this._properties.has(propertyName)) {
      logger.error('[ctx] Property already exists')
      throw new Error(`[ctx] Property ${String(propertyName)} already exists`)
    }
    logger.info(`[ctx] setting ${String(propertyName)}`)
    try {
      this._properties.set(propertyName, value)
      this._resolvePropToValue(propertyName, value)
    } catch (e) {
      logger.error(e)
    }
  }
Set the value of a property to a value.
This method supports overwriting values.

@template T
@param {ContextProperties} propertyName
@param {T} value

@returns {void}