В общем спасибо всем местным гурям, сделал сам. Добавление/обновление 1500 постов со всякими проверками средствами wp api (wp_insert_post/wp_update_post) - заняло примерно 10 минут. Через $wpdb->query - около секунды. Может кому пригодится:
//создаем уникальный индекс вместо обычного
$wpdb->query('ALTER TABLE wp_posts DROP INDEX post_name');
$wpdb->query('ALTER TABLE wp_posts ADD UNIQUE post_name (post_name)');
$q ="INSERT INTO wp_posts SET post_parent = 0, post_type = 'mytype', post_author = 1, post_content ='".$content_field."', post_title='".$content_title."', post_name= '".$content_name."' ON DUPLICATE KEY UPDATE post_name= '".$content_name."', post_content = '".$content_field."', post_title='".$content_title."'";
$wpdb->query($q);
$post_id = $wpdb->get_var("SELECT ID FROM wp_posts wp WHERE post_name = '".$content_name."'");
//Возвращаем обычный индекс
$wpdb->query('ALTER TABLE wp_posts DROP INDEX post_name');
$wpdb->query('ALTER TABLE wp_posts ADD INDEX post_name (post_name)');