I would also like to mention the idea of [Command Query Separation](https://martinfowler.com/bliki/CommandQuerySeparation.html)

Ideally,

* Queries return a result (and don't have side-effects)
* Commands change the state of a system.

As it seems to me that your methods are essentially *commands*, I would have them have a void return signature and raise exceptions on errors.

Than again, even if your *queries* encounter errors, they too should raise exceptions and not "return" something indicating an error. Programmers sometime use *null* to signify that a *query* failed, but I think that is ill advised.