You are correct, there is no need to check @@error after commit or rollback.
If you read the "paper" you will notice the writer:
• did not have error checking
• found out the hard way, that error checking is essential
• came up with a simple error checking construct, and put it in everywhere, after every statement
Not only is it overkill (re it is not required for commit and rollback), that is very simplistic and not mature, I would not recommend it; plus it causes repetitive code, and it is hard to follow. Good practice is a standard common error block at the end of the proc (all transactions should be procs) which is AWARE of transactions; tran state, @@trancount, the error severity, etc. All DML inline, in the body of the proc, needs to check for @@error and GOTO ERROR_BLOCK. Likewise, there has to be a prepare block at the top, which checks for tran states not allowed before starting the xact.