code: public <T> void put(Key<T> key, Factory<T> fac) {
          checkState(ht);
          Object old = ht.put(key, fac);
          if (old != null)
              throw new AssertionError("duplicate context value");
          checkState(ft);
          ft.put(key, fac); // cannot be duplicate if unique in ht
      }
docs: Set the factory for the key in this context.