PS: this is really the same operation as flatMapValues, so I would tend to think it could go in Online only:

```scala
FlatMapOperation[V, U] => FlatMapOperation[(K, V), (K, U)]
```
you could similarly do one for flatMapKeys (or just reuse this with a swap transformer).