I was thinking something like this:
```
var oldValue = _map[key];
if (oldValue == value) return;
if (inverse.containsKey(value)) {
  if (!replace) throw new ArgumentError("Inverse mapping for $value exists");
 _map.remove(_inverse[value]);
}
```