これでいいんじゃないの?

CON.BeginTrans()

On Error Goto DBError

SQL = "SELECT MAX(bk_id) max_id FROM book"
SET RS = CON.Execute(SQL)

If RS.EOF Then
newbk_id = 1
Else
newbk_id = RS("max_id")+1
End If

rs.close

Conn.Execute "Insert into book (bk_id) values (' + newbk_id + ")"

CON.CommitTrans
Exit Sub

DBError:
CON.RollBackTrans
response.redirect "error.asp"
end if