Configure when the cdr table is written to

I am working on as instance of Asterisk and the cdr table only gets populate on the hangup of a call, a transfer leg ending, etc. Will Asterisk only ever do INSERTs into the cdr table, or can it do UPDATEs as well? Specifically, what in Asterisk causes the cdr record to be written and how can I configure this event?

In case anyone was wondering, manipulating cdr.conf looks to be the best way to determine when the cdr record is actually populated to a storage system.