You're right, the attorney can't prevent the client from testifying if the client insists. You can tell him he's being a shithead, but at the end of the day it's his call.
It can get a bit tricky when you know the client intends to lie. Then it becomes not just a strategy issue but an ethical one as well.
Dov Charney would probably agree with you.