Yes.
Without doing it for you, this is the process:
First create the block with the attributes. Do this manually.
Save the block to a library location so it is available for insert.
Insert the block manually. Write down the prompts.
Create an object field with the field command. Set it up just like you want in the block attributes.
Look at the field code. All you need to replicate is the stuff to the left and right of the objectid, properly formatted.
Write a lisp command that uses the insert command prototyped here
(defun c:yourcommand ( nil / local arguments )
...set environment correctly, including error handler.
...
ask user to select objects with ssget or entsel
...vet the selection
...convert the enames to objectids for the fields.
...build the field based on looking at object fields you've built before
(command "_.insert" "yourblockname" ... answers to prompts you wrote down including attributes....)
...cleanup
)
Architect, Registered NC, VA, SC, & GA.