`UnmodifiableMultimap.forEach` uses the `Multimap.forEach` default implementation which involves listing entries, and creating a new lambda instead of simply passing the BiConsumer through to the protected instance. This is safe to pass directly though because `forEach(BiConsumer)` is a read-only operation.
public boolean putAll(K key, Iterable<? extends V> values) {
      throw new UnsupportedOperationException();
    }
    @Override
    public boolean putAll(Multimap<? extends K, ? extends V> multimap) {
      throw new UnsupportedOperationException();
    }
    @Override
    public boolean remove(Object key, Object value) {
      throw new UnsupportedOperationException();
    }
    @Override
    public Collection<V> removeAll(Object key) {
      throw new UnsupportedOperationException();
    }
    @Override
    public Collection<V> replaceValues(K key, Iterable<? extends V> values) {
      throw new UnsupportedOperationException();
    }
    @Override
    public Collection<V> values() {
      Collection<V> result = values;
      if (result == null) {
        values = result = Collections.unmodifiableCollection(delegate.values());
      }
      return result;
    }
    private static final long serialVersionUID = 0;
  }
  private static class UnmodifiableListMultimap<K, V> extends UnmodifiableMultimap<K, V>