code: @NonNull
    public static <K, V> ImmutableMap<K, V> append(
        @NonNull ImmutableMap<K, V> map, @NonNull K newKey, @NonNull V newValue) {
      ImmutableMap.Builder<K, V> builder = ImmutableMap.builder();
      for (Map.Entry<K, V> entry : map.entrySet()) {
        if (!entry.getKey().equals(newKey)) {
          builder.put(entry);
        }
      }
      builder.put(newKey, newValue);
      return builder.build();
    }
docs: If the existing map has an entry with the new key, that old entry will be removed, but the new
  entry will appear last in the iteration order of the resulting map. Example:
  
  <pre>{@code
  append({a=>1, b=>2, c=>3}, a, 4) == {b=>2, c=>3, a=>4}
  }</pre>