The general answer to these questions is "try it and see"... stick a WAIT FOR DELAY ... statement after the first insert to force a timeout, and see if the INSERT commits.
In this particular instance, I believe that ADO.NET is actually passing on a command-timeout parameter to the SQL Server. So I'm guessing that SQL Server is setting its own countdown, and going back to ADO.NET with a "sorry, time ran out" error (which ADO.NET then passes back to you.) I would guess that ADO.NET is *not* just giving up on SQL Server, which is merrily finishing the transaction after ADO.NET hangs up.
So yes, I think it would work. But don't take my word for it... try it and see. Make a one-off app.