Emacs is whatever you want it to be, and it has wonderful modal editing packages such as evil-mode[1] - which surpasses the editing system from vi that it is based on - and Meow[2]
Having used evil-mode as my main driver for years, I can confirm that it truly works as expected. Requires some setup though. I used https://github.com/doomemacs/doomemacs to do the heavy lifting though.
Emacs' keymap system is fully modal by design. This state machine is why it's possible to fully implement evil-mode (and many other modal editing UIs, like boon, lispy etc) quite easily on top.