during spend rpc function, we can find out that a utxo has been spent via the txproof result. i think if we get such a failure, we can go into a secondary spend logic, which updates the list of utxo based on the already spent. maybe even issue a mempool search.
separately, it can be useful to be able to spend utxo in the mempool. so this issue is the sane handling of the mempool status of utxo