Once a transaction has been submitted and validated through consensus, it will be, barring something really weird happening, submitted to the ledger and be canonized as historical fact.
I'm not an expect on stellar-core, but any time you submit a transaction either through your own core or through Horizon, you should get a JSON response back that includes a transaction hash, I believe. You can use something like www.stellar.expert to verify a transaction exists on the public ledger. At the very least you will know your sequence number for the transaction, so you should be able to look through the ledger history for transactions that used that Seq #.
Transactions are never disputable, per say, except during validation / consensus. Once a transaction has gone through, it's canonized as fact. As such, transactions themselves are not "disputable" by individual users.
You can however, as the issuer of an asset, configure your asset such that you retain the ability to "freeze" assets owned by a particular user.
As mentioned here: https://www.stellar.org/developers/guides/concepts/assets.html#revoking-access
Revoking access
As an anchor, you can mark the issuing account AUTHORIZATION REVOCABLE
. With this setting, the anchor can freeze credit held by another account. When credit is frozen for a particular account, that account can only send the credit back to the anchor–it can’t transfer the credit to any other account. This setting allows the issuing account to revoke credit that it accidentally issued or that was obtained improperly.
Hope that helps. If you have further questions, I'm on Slack pretty often.