If you start an action and it ends up modifying CDB, then it means that somewhere inside that action's code, someone started a transaction (or multiple transactions), and applied changes to CBD.
You'd rollback those changes in the exact same way as you roll back any transaction.
One obstacle when those changes are abstracted by an action, is that it's hard for you to tell how many transactions happened inside that action, what happened on each, and which of them will you want to roll back.
But strictly speaking, you'd roll back action changes in the exact same way as you rollback "config mode" changes.