With LACP aggregating multiple links, a single flow will only use a single link, but you can use the full channel bandwidth in aggregate. That means that you can have multiple flows, and each flow can only use one of the links, but all the links could be used with multiple flows. There is a hashing algorithm that determines which flow uses which link of the channel.
You do not want to split a single flow across multiple links because that with result in dropped packets and out of order packet delivery, which could result in degraded performance. Connection-oriented protocols can handle something like that, but it burdens the protocol to request missing packets, and to reorder packets. Connectionless protocols cannot handle that, and it will absolutely kill real-time protocols.
In the event of a link failure, the algorithm will move any flows using the failed link to the remaining links. This happens very rapidly.