Can you just use update_option or is add_option necessary?

Is it possible to just use update_option, and if the option doesn't exist, does it create it? Or do I need to check for the option's existence, update it if it exists and call add_option if it doesn't? Seems more work.

Second question: I've been sending an array into an option and then using get_option to get it back out. I know that when the array is stored, WP does the serialization, but when I use get_option, the array doesn't seem to unserialize. Any thoughts on why that might be?