Assignee is normally a required field when solving a ticket. Even so, it is possible for an automation/trigger to mark a ticket as solved without an assignee.
There exists a setting within Admin > Settings > Tickets > Assignment > Auto-assign tickets upon solve.
If this setting is enabled, any subsequent update to an already-solved ticket with no assignee will cause it to be assigned to the updating user. This is true whether the update comes from within the agent-interface, or via an API call/app/etc. In that case, the user whose credentials (or token) were used for the API request will be assigned the solved ticket.