code: private void putWithValidation(String key, Object value) throws BitcoinURIParseException {
          if (parameterMap.containsKey(key)) {
              throw new BitcoinURIParseException(String.format(Locale.US, "'%s' is duplicated, URI is invalid", key));
          } else {
              parameterMap.put(key, value);
          }
      }
docs: Put the value against the key in the map checking for duplication. This avoids address field overwrite etc.
  
  @param key The key for the map
  @param value The value to store