Well basically that. If a transaction is in the memory pool, that is, it is not yet in a block but nodes and miners know about it and validated it, Can I send another transaction that double-spends the outputs? that is, are the outputs considered unspent?
The transactions are considered spent from the nodes that already have the transaction in the
mempool, that is, if you try to double-spend the transaction, they will reject the new one. However, if the transaction ends up not being included in a block, they will be dropped from the
mempool after a certain time. After that, you will be able to create a new transaction that spends the same
UTXOs, since from that point on it won't be considered double-spending.
Let's assume that there are two UTXO under your control,
U2 to create a transaction
T1 that would create
U3 when confirmed.
U2 therefore are inputs of the unconfirmed transaction
U3 is an output of
U2 are unspent, however another transaction
T2 spending either or both of them would be considered a doublespend by any node that knew about
T1 is confirmed,
U3 is not part of the UTXO pool. Since the transaction is yet unconfirmed, the newly created output doesn't exist yet.