Hey, Charles, here's the simplest example...
create table dbo.Customer (customername varchar(100))
go
insert into dbo.Customer values ('Kevin')
begin transaction
truncate table Customer
rollback transaction
select * from Customer
This runs...and at the end, you'll "get your row back"
To the best of my awareness, if anyone tries to query the table from other process/connection, in the period between the truncate and the rollback in the original connection, they'll basically get locked out from a result.