Creating the contribution is part of CiviCRM core. However, we do get a "Card declined" response back from Stripe when the payment fails and we should be reflecting that on the contribution (ie. setting it to failed) as it won't be "accepted" later. Stripe also sends IPN (payment notifications) when payments are processed/failed later.
Currently the extension does not take into account the return values from the payment correctly.
Webhooks have been substantially refactored in 5.2. For single contributions the contribution will simply fail. For recurring contributions they will be marked as failed.