You are right there is no multicast, except for ITP packets (which are generated by the host controller).
The USB model is you send data to a device, not a port, but with USB 3 the data is routed, so it will appear on only one port of a hub (or host port). It may have to pass through hubs on the way.
At the protocol level, data is ACKed, except for isochronous. For SuperSpeed (USB 3) the data is sent on the downstream link and the device ACKs that on the upstream port. If the host doesn't receive a suitable ACK, it'll retry of eventually fail the transaction. For isochronous data, it is sent to the device and there is no way to know if it was received.
At the host controller level a transaction is added to a transaction ring, and an event is added to the event ring when the ACK is received.
The OS can use this, as Jan mentions, to complete a transaction when its ACKed or fails. Either by returning from a synchronous call, or sending an asynchronous completion.