Yes, TransactionScope is picked up by ADO.NET. If you catch any exceptions and call .Rollback(), everything will be rolled back.
There are fine details in the way it works (e.g. MSDTC can get involved), but what you are suggesting is perfectly valid and the correct way of doing what you want to achieve.
Same thing works for Oracle and other DBs supporting TransactionScope. You can also pass the transaction through a WCF service, where if more DBs are used they are made a part of the transaction, and so on.
With some low-level work, you can even include NTFS operations in the transaction. Windows API supports it, but not .NET without a wrapper, for NTFS.