Can transaction fail but the calling contract will think it is successful?

when making an ERC20 transfer it is a standard practice to wrap it in require statement so if it fails the tx will revert like this:

require(token.transfer(...));

What if I'm calling an external contract that doesn't return a boolean and the transaction fails.

Is it possible that the tx will fail(not revert) but the contract that called that function will think that it was successful?

Thanks. If the question isn't clear I'm happy to provide more context.

Hey! Normally the transaction should fail and revert, but you can but in security checks.
example: You use transferfrom to transfer tokens from the user to the contract. You can either check the balance of the msg.sender before and after transfer or check the balance of the contract.