Thanks for your reply.
If a package fails, it will roll back to the start of the transaction, so it shouldn't leave your database in an inconsistent state. However, if the schema update succeeds but the data update fails, then it will only roll back to the start of the date update.
If you want the package to continue to execute when an error is encountered, then there are options you can set.
for the schema, set the schema option:
Do Not use transactions in synchronization script
for the data, use the data option:
However, this could lead to your database being left in an inconsistent state.