It's because a Transaction is intended to work with more than one command: inserting related data into to tables for example.
If either one of the inserts fails, you don't want any of the data from either in the DB because it wouldn't have it's matching data. Think about an invoice: you have one table containing the invoice header (customer, invoice number, date) and a separate table containing a row for each of the individual products the customer bought. If the header fails (because the date is 31st Feb 2111111 perhaps) then you don't want the product rows in your DB because they don't have a header to join them together. Equally, if one of the products doesn't exist, you don't want the header to generate an invoice either, because some of the information is missing.
So you use a Transaction around the whole set of INSERT statements:
Begin Try
Begin Tran
INSERT INTO Invoices (InvoiceNumber, CustomerID, InvoiceDate) VALUES (@IN, @CID, @IDT);
INSERT INTO InvoiceLines (InvoiceNumber, ProductID) VALUES (@IN, 1234)
INSERT INTO InvoiceLines (InvoiceNumber, ProductID) VALUES (@IN, 1235)
Commit Tran
End Try
Begin Catch
Rollback Tran
End Catch
And when anything fails, the ROLLBACK undoes them all.