code: public Settings setProperty(String key, @Nullable String value) {
      String validKey = definitions.validKey(key);
      if (value == null) {
        removeProperty(validKey);
      } else {
        set(validKey, trim(value));
      }
      return this;
    }
docs: Change a property value in a restricted scope only, depending on execution context. New value
  is <b>never</b> persisted. New value is ephemeral and kept in memory only:
  <ul>
  <li>during current analysis in the case of scanner stack</li>
  <li>during processing of current HTTP request in the case of web server stack</li>
  <li>during execution of current task in the case of Compute Engine stack</li>
  </ul>
  
  Property is temporarily removed if the parameter {@code value} is {@code null}