You can allow members to edit their own bookings.
See Role UPDATE_BOOKING. Set the Role to Member to allow members to edit their bookings. If you want the public to edit their own bookings, get in touch as this has not been tested yet.
After a member edits their booking, a new price is calculated but no transaction is created, unless you turn this on using Configuration_item UPDATE_PRICE. It is recommended that this is turned on, otherwise you need to exercise vigilance when bookings are edited to update the Admin Price manually.
With the above setting turned on, credits are issued automatically in accordance with your Cancellation Credit rules, similar to what happens when a booking is cancelled, or an invoice is raised. Refunds always require manual action by you.