It's not as easy for me as you describe.
First, good servers are very fast, so you only have less than a second to read it.
Second, even if I correctly recognize the underspin or topspin, I can't quite gauge the amount of underspin/topspin. So if I recognize it is underspin and go to push...