Computer Architecture – Software Management of TLB Errors?

I read a textbook for operating systems and it was about TLB errors that are handled by software. Incidentally, I am very new to all this. So there is a context switch to a kernel procedure. But surely in this case the TLB is not deleted, and the kernel code does not use the TLB itself, as this would nullify the purpose? But how exactly does it work? I do not know why the text does not deal with such an obvious question.

Also, you still use virtual memory, right? So you would do two context switches, a set of page table lookups in memory in addition to the actual kernel statements per missing TLB entry. It just does not seem intuitive to do all this work to use something that will save you work. I'm sorry if I'm doing something completely wrong here. Thank you in advance.