Yes, TransactionScope is picked up by ADO.NET. If you catch any exceptions and call .Rollback (), everything will be rolled back.
There are small details in how it works (for example, MSDTC can participate), but what you offer is absolutely the right and right way to do what you want to achieve.
The same thing works for Oracle and other databases supporting TransactionScope. You can also transfer the transaction through the WCF service, where if more databases are used, they become part of the transaction, etc.
When doing some low-level work, you can even include NTFS operations in a transaction. The Windows API supports it, but not .NET without a shell, for NTFS.
source share