Los dos son equivalentes. El uso de un objeto SqlTransaction le permite colocar la transacción en un using
alcance:
using(SqlTransaction trn = conn.BeginTransaction ())
{
...
trn.Commit ();
}
Este es un mejor patrón en presencia de excepciones.