Where is it better to wrap a function with try-except?

Next function will fail with some data. Where is it better to wrap it with a try-except block?

 if attr in obj_request:
     new_record = GosReestr()
     new_record.display_name_department = request.user.profile_ad.department
     new_record.set_data(**obj_request[attr][_main_data])
     print('before')
     new_record.save()
     print('after')

Is this better?

 if attr in obj_request:
     new_record = GosReestr()
     new_record.display_name_department = request.user.profile_ad.department
     new_record.set_data(**obj_request[attr][_main_data])
     print('before')
     try:
          new_record.save()
     except as e
     print('after')

Or is it better to wrap everything in one if block?