The OP's question and the cote he shows are quite confusing:
Does he want to insert a block definition (thus Database.Insert()), or a BlockReference (as a reference to a BlockTableRecord)?
According to the description, it seems the Block definition already exists in the drawing, and he want to CREATE a BlockReference. To ordinary CAD user, the term is "insert a block", but to us programmer, "Insert block" is ambiguous, to say the least.
The code itself is contradicting itself:
If bFound Then
Dim xDB As New Database(False, True)
blockId = db.Insert(ParseField(sBlockName, 1, "."), xDB, True)
Return True
End If
If bFound is "true", meaning the block definition already there, why insert a database as a block definition?
If the purpose to overwrite existing block definition with a different drawing file (named the same as the block definition), then there is not need to test if the current drawing database has the block definition already existing or not. If so, the above code is still wrong: after newing an empty database, Database.ReadDwgFile() must be called before inserting it into another drawing as block definition.