You can create a Setting without using transaction.on_commit. This ensures that if the main transaction fails, the entire transaction, including all records created in signals and within the save method of your model, is rolled back.
Setting
transaction.on_commit
save