code: public ProductPartitionNode removeCustomParameter(String key) {
      if (!nodeState.supportsCustomParameters()) {
        throw new IllegalStateException(
            String.format("Cannot remove custom parameters on a %s node", nodeState.getNodeType()));
      }
      Preconditions.checkNotNull(key, "Null key");
      if (!nodeState.getCustomParams().containsKey(key)) {
        throw new IllegalArgumentException("No custom parameter exists for key: " + key);
      }
      this.nodeState.getCustomParams().remove(key);
      return this;
    }
docs: Removes the specified key from the custom parameters map. The key <em>must</em> be present in
  the map.
  
  <p>Since this method follows the standard builder pattern and returns {@code this}, there is no
  way to indicate if the remove operation failed besides throwing an exception.
  
  @param key the key to remove. This must not be {@code null}.
  @throws IllegalStateException if this node is not a biddable UNIT node
  @throws IllegalArgumentException if there is no entry for {@code key} in the map