code: @SuppressWarnings({ "unchecked" })
      public static <V> V put(Map<? super TypedIdKey<V>, ? super V> map,
              Serializable id, V value) {
          map.put(new TypedIdKey<V>((Class<V>) value.getClass(), id), value);
          return value;
      }
docs: Associates the given value's type and the id with the given value
  using the given map.
  
  @param <V> the value type
  @param map the map
  @param id the id
  @param value the value
  @return the value for easy chaining