This method has to throw an exception at the end to say that the original operation in top layer has errors and the transaction is rolledback