Thanks so much for you detailed reply!
I have found the hook finally. I added do_action( 'acf/save_post', $post_id );
after $post_id = wp_insert_post( $new_post );
and the fields can be updated in once.
However, another issue still haven’t be solved. When I’m trying to submit another new form, the previous entries shows again. Do you have any idea how can I solve this? I found that the existing form sets the post_id = 0
before generating a new post ID.