I would just throw an error when the key already exists and ask them to use `removeKey` if the original key is no longer needed. It makes this simpler and provides a safety net