Normally that’s how it works. Yeah. Normally. In this case however, he doesn’t have to be completely honest and will never be prosecuted if he tells a little white lie or doesn’t remember or had no criminal intent.
But if he wasn't honest, wouldn't that be cause to revoke the immunity & prosecute him? (Obviously, I'm not a lawyer.)