Take a look at my answer here.
There I recommend using Safecracker instead of Freeform, to store these as entries. You can then use an add-on or your own PHP code to handle the email notifications that Freeform would have generated.
When using Safecracker, you'll want to have a postprocessor template as your redirect URL. In that template, you can use
exp:query to update your database, or PHP. Either way, you'll be manipulating those values directly.
You can include the new entry's ID on the redirect URL for reference in your postprocessor template. You can set PHP to output, and get the entry using
Within that postprocessor template, you can have a redirect to send the user on to the target destination.
Updated: I'm suggesting Safecracker as it will ultimately give you more flexibility in your event management data. If you think of it as a relational database, you have event records and registration records. Those are really registration entries in a registration channel, referencing an event. You'll ultimately have more flexibility in this sort of system by treating those as a channel, and possibly find exp_channel_data easier to manipulate.
Freeform also has a post submit hook. You can write an extension that will manipulate your Event channel data using PHP/SQL in an extension, and register that extension to run every time a particular form is submitted. But I'd consider storing relational data entirely in channels, not split between a channel and Freeform. That way you can do custom reports with