Not returning wp_error on failed post creation

Returning `0` is good in case of failure in production use
Using wp_update_post() instead of using $wpdb to update post modified time