The scenario is: I have 2 smartcontracts and contractA calls the method in contractB. Lets assume a transaction is signed in one of the method in contractA which does something and then also calls the method in contractB. Now, something happened and method in contractB throws an exception and transaction fails and reverted. However transaction failed but certain transaction fee gets deducted while making the call.
Is there a way to rollback the transaction like we usually do in DBMS when something fails in the middle?
Can we somehow achieve the ATOMICITY properties like in DBMS? Or what is the best approach at least we can practice in smartcontract transactions?