docs: @Nullable
    public synchronized V put(K key, V value) {
      // We do remove and insert instead of just replace, in order to cause a structural change
      // to the map, as we always want the latest inserted element to be last in the queue.
      V oldValue = mMap.remove(key);
      mSizeInBytes -= getValueSizeInBytes(oldValue);
      mMap.put(key, value);
      mSizeInBytes += getValueSizeInBytes(value);
      return oldValue;
    }