code: public void put(K key, V value) {
      mMap.compute(key, (k, entry) -> {
        onPut(key, value);
        if (entry == null && cacheIsFull()) {
          writeToBackingStore(key, value);
          return null;
        }
        if (entry == null || entry.mValue == null) {
          onCacheUpdate(key, value);
          return new Entry(key, value);
        }
        entry.mValue = value;
        entry.mReferenced = true;
        entry.mDirty = true;
        return entry;
      });
      wakeEvictionThreadIfNecessary();
    }
docs: Writes a key/value pair to the cache.
  
  @param key the key
  @param value the value