Keys are actually saved somewhere. On your homeserver, in a store itself encrypted by another key that only you (and your other clients) have.
You can disregard that store and not use it at all, which I actually think is a totally valid use case. It turns Signal-style at that point.