Adding Transaction on the DAO method.

a lot of work need to do still.

Signed-off-by: Winguse <github@winguse.com>