code: public Object add(String key, Object value) {
          if (!this.containsKey(key)) {
              this.put(key, value);
              return null;
          }
          return this.get(key);
      }
docs: This method safely add new options. If the key already exists it does not overwrite the current value.
  You can use put for overwritten the value.
  
  @param key The new option name
  @param value The new value
  @return null if the key was not present, or the existing object if the key exists.