A SavePoint can be considered as a subset of transaction. It can work as an marker/pointer after executing each SQL command within transaction.
In Transactions: It is either all or none of the data following ACID rules.
In Transactions with SavePoint: It could be used to have some control within the transactions, failure/error handling within transactions where storing partial information can be useful. It allows rollback to the last successful pointer and commit the transaction.