Answer lies in your code, as you have used save TRAN T2, Transaction T2 get saved and rollback doesn't affect @@TRANCOUNT value
Try to run below query multiple times in SQL Server....you will see value of @@TRANCOUNT gets increased by 1, every time you execute this query.
SELECT @@TRANCOUNT
BEGIN TRAN T2 save TRAN T2
PRINT 'After transaction T2 starts'
SELECT @@TRANCOUNT
ROLLBACK TRAN T2
PRINT 'After transaction T2 roll backs'
SELECT @@TRANCOUNT