If you talk about continuous integration then I assume it's a development environment. In that case I would say the person doing structural changes has to test them to ensure not to break things for others, much the same way someone updating a common library: Test in your own sandbox before commiting such changes.
In a production deployment process you would typically go through dev, QA or even pre-production environments to test your changes, the same way you would for any code changes.
Note that this is not MySQL specific: Oracle databases would also implicitly do COMMIT when issuing 'alter table' etc.
Now if you want to protect yourself you may of course do a backup beforehand, or a LVM or filesystem snapshot if your system can do that. You may also have a slave which you could delay/stop as a security before sensitive operations.