This allows Chronik to use the already very optimized functions to access spent coins, which is useful when validating a raw tx, e.g. before broadcasting.
We also provide the coins that couldn't be found, and the coins to uncache if the tx didn't end up being broadcast.
This is so that clients can't fill our cache with useless old coins and slow down validation. This mirrors the behavoir of MemPoolAccept::PreChecks, which uncaches the queried coins if they don't end up being spent.